package com.codi.trade.service;

import com.codi.base.log.annotation.Loggable;
import com.codi.trade.dto.TradeApplyQryDto;
import com.codi.trade.response.HsTradeApplyQryResponse;

import java.util.List;
import java.util.Map;

public interface TradeApplyQueryService {

    // 交易申请查询
    Map<String, Object> query(Integer requestNum, Integer queryFlag, Integer beginNum, String sortDirection,
                              String taAcco, String clientId, String beginDate, String endDate, String allotNo,
                              String taConfirmFlag, String tradeAccount, String fundCode, String businCode,
                              String deductStatus,
                              String originalAppNo, String boardType, String trafficFlag, String targetFundCode);

    // 交易申请查询
    @Loggable
    Map<String, Object> queryOld(Integer requestNum, Integer queryFlag, Integer beginNum, String sortDirection,
                                 String taAcco, String clientId, String beginDate, String endDate, String allotNo,
                                 String taConfirmFlag, String tradeAccount, String fundCode, String businCode,
                                 String deductStatus, String originalAppNo,
                                 String boardType, String trafficFlag, String targetFundCode);

    // 交易申请查询
    @Loggable
    Map<String, Object> queryForPortfolio(Integer requestNum, Integer queryFlag, Integer beginNum, String sortDirection,
                                          String taAcco, String clientId, String beginDate, String endDate, String allotNo,
                                          String taConfirmFlag, String tradeAccount, String fundCode, String businCode,
                                          String deductStatus, String originalAppNo,
                                          String boardType, String trafficFlag, String targetFundCode, String portfolioAllotNo);

    /**
     * 查询交易
     *
     * @param dto
     * @return
     * @author spy 2017-11-13 14:07:55
     */
    Map<String, Object> query(TradeApplyQryDto dto);

    /**
     * trade query
     *
     * @param dto
     * @return
     * @author spy
     * @version 1.0
     */
    List<HsTradeApplyQryResponse> queryV2(TradeApplyQryDto dto);
}
